For decades, enterprises have invested significant resources developing applications to run their critical enterprise systems. As technology has advanced, the programming languages running these critical enterprise systems have remained the same. Maintaining applications written in a legacy programming language presents challenges for maintenance, application updates, and application development.